﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Xml;
using System.Xml.Xsl;
using Ext.Net;
using Ent.Inscripcion.Core.Core;
using Ent.Inscripcion.Core.Administracion;

namespace Ent.Inscripcion.Presentacion.Administracion.Reportes
{
    public partial class ListadoRegistradosTutoria : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!X.IsAjaxRequest)
                {
                    ////Carga de horarioExamens de dias
                    stoDias.DataSource = DiaLista.GetLista("DIAS");
                    stoDias.DataBind();
                    //Carga de horarioExamens de Niveles
                    stoNiveles.DataSource = CatalogoItemLista.GetListaCatalogos("NIVEL");
                    stoNiveles.DataBind();
                    //Carga las ofertas de tutorias
                    stoOfertaTutorias.DataSource = OfertaTutoriaLista.GetOfertaTutoriaLista();
                    stoOfertaTutorias.DataBind();
                    //Carga de horarioExamens de Niveles
                    stoNiveles.DataSource = CatalogoItemLista.GetListaCatalogos("NIVEL");
                    stoNiveles.DataBind();
                    //Carga de horarioTutorias de Paralelo
                    stoParalelos.DataSource = CatalogoItemLista.GetListaCatalogos("PARALELO");
                    stoParalelos.DataBind();
                    //Carga de Docentes
                    stoDocentes.DataSource = DocenteLista.GetDocenteLista(DocenteCriterio.NewDocenteCriterio());
                    stoDocentes.DataBind();
                }
            }
            catch (Exception ex)
            {
                Util.RegistarLog(ex.ToString());
            }
        }

        /// <summary>
        /// Permite exportar a excel
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ToExcel(object sender, EventArgs e)
        {
            string json = GridData.Value.ToString();
            var eSubmit = new StoreSubmitDataEventArgs(json, null);
            XmlNode xml = eSubmit.Xml;

            this.Response.Clear();
            this.Response.ContentType = "application/vnd.ms-excel";
            this.Response.AddHeader("Content-Disposition", "attachment; filename=reporteRegistradosTutorias.xls");
            var xtExcel = new XslCompiledTransform();
            xtExcel.Load(Server.MapPath("Excel.xsl"));
            xtExcel.Transform(xml, null, this.Response.OutputStream);
            this.Response.End();
        }

        /// <summary>
        /// Listar los estudiantes registrados para dar el examen en la fecha y hora seleccionada
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnListar_Click(object sender, DirectEventArgs e)
        {
            try
            {
                var oferta = e.ExtraParams["Oferta"];
                var nivel = e.ExtraParams["Nivel"];
                var dia = e.ExtraParams["Dia"];
                var paralelo = e.ExtraParams["Paralelo"];
                var docente = e.ExtraParams["Docente"];
                var cedula = e.ExtraParams["Cedula"];
                var criteria = EstudianteTutoriaCriterio.NewEstudianteTutoriaCriterio();
                criteria.DiaId = dia;
                criteria.DocenteId = docente;
                criteria.NivelId = nivel;
                criteria.OfertaId = oferta;
                criteria.ParaleloId = paralelo;
                criteria.Cedula = cedula;
                var lista = EstudianteTutoriaLista.GetEstudianteTutoriaLista(criteria);
                /*var lista = new List<object>();
                var persona = new { Id = "demo", Apellidos = "cuenca", Imagen = "noDisponible.jpg", Nombre = "Luis", Carrera = "", Celular = "", Direccion = "", Email = "", Identificacion = "0704682012", Telefono = "" };
                  lista.Add(persona);         */

            stoRegistrados.DataSource = lista;
            stoRegistrados.DataBind();
            }
            catch (Exception ex)
            {
                e.Success = false;
                Util.RegistarLog(ex);
            }
        }
    }
}